package com.opencore.bean;

import java.io.File;
import java.util.ArrayList;
import java.util.StringTokenizer;

import com.opencore.dao.DteFileProceso;
import com.opencore.dto.DteFileProcesoDTO;
import com.opencore.util.AppProperties;


public class LeerDirectorioProceso {

	public void LeeDirectorios(String directorioProp){
		String dirOrigen = (AppProperties.getProperty("aplicacion", directorioProp));
		String path = dirOrigen;
		File directorio = new File(path);
		String [] ficheros = directorio.list();		
		ArrayList<DteFileProcesoDTO> archivo = new ArrayList<DteFileProcesoDTO>();
		boolean existe = false;
		try {
			ArrayList<DteFileProcesoDTO> archivoExistente = DteFileProceso.getAll();
			if(ficheros.length > 0)
				for(int i= 0; i< ficheros.length ; i++){
					DteFileProcesoDTO linea = new DteFileProcesoDTO();
					linea.setNombreArchivo(ficheros[i]);
					linea.setRuta(directorioProp);
					linea.setProcesado("N");
					for (DteFileProcesoDTO dteFileProcesoDTO : archivoExistente) {
						if(dteFileProcesoDTO.equals(linea))
							existe = true;
					}
					if(!existe)
						archivo.add(linea);
				}

			DteFileProceso.insert(archivo);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public void procesa(){
		String dato = 	 AppProperties.getProperty("aplicacion", "IndiceProceso");
		StringTokenizer st = new StringTokenizer(dato,  ":-,");	
		
		while(st.hasMoreTokens()) {			
			String id         = st.nextToken();	
			String directorio = st.nextToken();
			String estado     = st.nextToken();
			
			switch(id){						
			case "3": case "4": case "5": case "6":	
				LeeDirectorios(directorio);				
				break;		

			default:
				break;
			}
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		LeerDirectorioProceso ssss = new LeerDirectorioProceso();
		//ssss.LeeDirectorios();
		ssss.procesa();

	}
}
